package br.com.controleVendas.controller;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.primefaces.context.RequestContext;
import org.primefaces.event.RowEditEvent;

import br.com.controleVendas.config.HibernateUtil;
import br.com.controleVendas.dao.ParcelaVendaDao;
import br.com.controleVendas.entity.Cliente;
import br.com.controleVendas.entity.ParcelaVendaDto;
import br.com.controleVendas.entity.VendaDto;

@ManagedBean(name = "parcelaPesquisarCtrl")
@ViewScoped
public class ParcelaPesquisarController {

	ParcelaVendaDao dao;

	List<ParcelaVendaDto> list = new ArrayList<>();

	private ParcelaVendaDto filtro;

	public ParcelaPesquisarController() throws Exception {

		dao = HibernateUtil.getInstance().getParcelaVendaDao();
		filtro = new ParcelaVendaDto();
		filtro.setVenda(new VendaDto());
		filtro.getVenda().setCliente(new Cliente());
		resetarFiltro();

		atualizaListagem();

	}

	public void resetarFiltro() {
		filtro = new ParcelaVendaDto();
		filtro.setVenda(new VendaDto());
		filtro.getVenda().setCliente(new Cliente());
	}

	public void atualizaListagem() throws Exception {

		list = new ArrayList<ParcelaVendaDto>();
		list = dao.getList(filtro);

		RequestContext.getCurrentInstance().update(":formParcelaListar");

	}
	
	public void atualizarParcela(RowEditEvent event) throws Exception{
		dao.salvar((ParcelaVendaDto) event.getObject());
	}

	public void setList(List<ParcelaVendaDto> list) {
		this.list = list;
	}

	public List<ParcelaVendaDto> getList() {
		return list;
	}

	public ParcelaVendaDto getFiltro() {
		return filtro;
	}

	public void setFiltro(ParcelaVendaDto filtro) {
		this.filtro = filtro;
	}

}
